import React, {ReactElement} from "react";
import {
    BarChart3, CircleAlert, CircleX, Crown,
    HelpCircle, Home, ImageUp,
    LayoutDashboard,
    LogOut, Mail,
    Package2, Pen, Plus, ScanFace,
    Search, SendHorizontal,
    Settings,
    ShoppingCart, User,
    UserCircle, UserRoundCheck, Warehouse
} from "lucide-react";
import {UserRoleEnum} from "@/enums/access";


type RootIconProps = React.SVGProps<SVGSVGElement>;
type ComponentIconProps = {
    [key: string]: (props: RootIconProps) => ReactElement;
};

export const Icons: ComponentIconProps = {
    logo: (props: RootIconProps) => (
        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" {...props} >
            <path
                d="M0 0 C10.88767979 8.26075857 17.79928143 18.42036988 24.32421875 30.203125 C24.66453125 30.80979004 25.00484375 31.41645508 25.35546875 32.04150391 C38.95388639 56.60231779 45.87340019 84.69340265 51.59765625 111.984375 C52.16033039 115.07476121 52.16033039 115.07476121 53.32421875 117.203125 C56.95117441 116.34230118 60.54208301 115.37708073 64.13671875 114.390625 C65.16087891 114.14892578 66.18503906 113.90722656 67.24023438 113.65820312 C70.29276417 112.78748151 72.68429101 111.97484721 75.32421875 110.203125 C77.11758033 106.64590244 77.67799813 103.10615275 78.32421875 99.203125 C82.62906862 89.1323853 90.25552403 82.96817615 100.26953125 78.9140625 C109.152702 75.84041787 119.01238032 76.54267433 127.61328125 80.16796875 C134.91450974 83.89385339 141.77868694 89.6688699 145.32421875 97.203125 C145.32421875 97.863125 145.32421875 98.523125 145.32421875 99.203125 C146.28199219 99.15671875 147.23976563 99.1103125 148.2265625 99.0625 C163.59765548 98.55123602 179.08237361 100.89628495 191.37109375 110.86328125 C198.46759539 117.5200424 203.05025397 125.37091413 203.6953125 135.2265625 C204.68535383 169.72752284 180.85214382 197.02669092 158.5078125 220.86328125 C150.95282458 228.83575045 143.29086663 236.79878011 134.875 243.87109375 C133.26674573 245.20563779 133.26674573 245.20563779 131.7421875 246.87890625 C130.32421875 248.203125 130.32421875 248.203125 128.32421875 248.203125 C128.32421875 248.863125 128.32421875 249.523125 128.32421875 250.203125 C128.9171875 250.46738281 129.51015625 250.73164063 130.12109375 251.00390625 C132.40450929 252.24682925 133.79848598 253.50714146 135.57421875 255.390625 C137.94940116 257.90102819 140.44011815 260.19013853 143.0546875 262.4453125 C147.34556722 266.17222823 151.38082786 270.11142145 155.38671875 274.140625 C156.05509766 274.80513672 156.72347656 275.46964844 157.41210938 276.15429688 C161.92061114 280.67156152 166.19165105 285.34030437 170.32421875 290.203125 C170.82268311 290.78956787 171.32114746 291.37601074 171.8347168 291.98022461 C189.29628209 312.77790668 205.43153495 336.92127158 203.53417969 365.07519531 C202.51682195 375.38599769 197.01425211 382.53558915 189.32421875 389.203125 C185.49584626 391.81682973 181.66110431 393.58589309 177.32421875 395.203125 C176.26976562 395.61433594 175.2153125 396.02554687 174.12890625 396.44921875 C135.97936947 408.56484087 89.4543527 393.16512881 53.32421875 381.203125 C51.34421875 389.123125 49.36421875 397.043125 47.32421875 405.203125 C48.64421875 405.863125 49.96421875 406.523125 51.32421875 407.203125 C58.68493386 412.70307768 62.104429 420.38277022 63.95703125 429.22265625 C65.16102745 438.99551903 63.28052247 448.37709298 57.64453125 456.52734375 C55.71178582 458.98044372 53.64474681 461.11464975 51.32421875 463.203125 C50.60234375 463.88375 49.88046875 464.564375 49.13671875 465.265625 C42.65439547 469.73122548 37.06150847 471.31267459 29.19921875 471.203125 C24.88877675 471.39418243 23.04546994 471.47708939 19.96875 474.57421875 C18.64113159 476.65441925 17.37661474 478.7759914 16.171875 480.9296875 C10.17173107 491.55996364 -0.20823316 500.36989892 -11.71875 504.5390625 C-22.80267522 507.02818705 -33.82977883 506.05673683 -43.67578125 500.203125 C-77.79603951 477.29025084 -90.07397655 426.30853654 -97.67578125 388.203125 C-98.08972835 385.53434818 -98.40826568 382.89149133 -98.67578125 380.203125 C-99.33658691 380.439104 -99.99739258 380.67508301 -100.67822266 380.91821289 C-118.79291446 387.32432541 -136.83000887 392.37993834 -155.67578125 396.203125 C-156.62614258 396.39664551 -157.57650391 396.59016602 -158.55566406 396.78955078 C-169.71168685 398.95981385 -180.75866074 399.48410674 -192.11328125 399.578125 C-193.96179688 399.59927368 -193.96179688 399.59927368 -195.84765625 399.62084961 C-212.32601228 399.53345768 -228.49512628 396.19899901 -240.6171875 384.46484375 C-247.23335873 377.19584348 -250.25222107 368.28800294 -250.11328125 358.578125 C-250.09648315 357.39536987 -250.09648315 357.39536987 -250.0793457 356.1887207 C-249.47068972 336.73339675 -238.61570834 318.09982043 -226.67578125 303.203125 C-225.86975667 302.13740759 -225.06653823 301.06956403 -224.265625 300 C-211.80870603 283.52954874 -197.00961011 267.95103558 -181.265625 254.5703125 C-179.29920239 252.87928569 -177.47134692 251.07350591 -175.67578125 249.203125 C-179.94075756 244.81819624 -184.33497554 240.66861045 -188.9765625 236.68359375 C-190.2530757 235.57141328 -191.47861139 234.40029486 -192.67578125 233.203125 C-194.24520457 233.37750537 -195.81384814 233.57033645 -197.37109375 233.83203125 C-209.22198943 235.74022632 -219.6275364 235.80791395 -229.98828125 229.078125 C-238.53286492 222.55292043 -243.44137749 214.68914264 -245.67578125 204.203125 C-246.4040181 195.4362737 -245.31014131 187.43406692 -240.61328125 179.890625 C-239.24264842 174.49946918 -241.53429118 171.47657029 -243.96875 166.640625 C-250.2311706 154.02980091 -252.42478892 138.91054097 -248.30078125 125.203125 C-244.0561002 115.6600134 -236.44086799 108.52825649 -226.93359375 104.41796875 C-225.85851562 104.01707031 -224.7834375 103.61617188 -223.67578125 103.203125 C-222.62132812 102.79191406 -221.566875 102.38070312 -220.48046875 101.95703125 C-198.82176817 95.07860876 -172.40080459 98.57568446 -150.67578125 103.203125 C-149.1441333 103.52458496 -149.1441333 103.52458496 -147.58154297 103.85253906 C-112.20280366 111.43961379 -112.20280366 111.43961379 -98.67578125 118.203125 C-98.56041016 117.46884277 -98.44503906 116.73456055 -98.32617188 115.97802734 C-92.23961822 78.23778602 -79.96934004 25.5512096 -47.875 1.06640625 C-45.19895064 -0.69912009 -42.5015852 -2.28489758 -39.67578125 -3.796875 C-38.74765625 -4.33634766 -38.74765625 -4.33634766 -37.80078125 -4.88671875 C-25.83777676 -10.68129905 -10.40352972 -6.98631193 0 0 Z M-34.67578125 20.203125 C-35.49175781 20.80125 -36.30773437 21.399375 -37.1484375 22.015625 C-56.74271418 38.97512259 -65.12038206 72.64921351 -71.61328125 96.640625 C-71.83701416 97.45176758 -72.06074707 98.26291016 -72.29125977 99.09863281 C-73.53339883 103.64921192 -73.53339883 103.64921192 -72.67578125 108.203125 C-70.93554688 107.69652344 -70.93554688 107.69652344 -69.16015625 107.1796875 C-37.61881409 98.1204805 -8.22476864 99.00209143 23.32421875 107.203125 C24.65718864 107.53790877 25.99041073 107.8716962 27.32421875 108.203125 C22.77909105 79.73477632 11.74856994 38.08590865 -12.21875 19.19921875 C-20.89877703 13.53947344 -26.57379044 14.16634753 -34.67578125 20.203125 Z M-226.17578125 131.890625 C-229.67132547 139.60995183 -227.55637323 146.65278758 -224.84375 154.34375 C-223.60208072 157.38355573 -222.18167387 160.2862671 -220.67578125 163.203125 C-219.43183594 163.15671875 -218.18789062 163.1103125 -216.90625 163.0625 C-204.26560622 162.73088798 -194.34918889 163.27382564 -184.67578125 172.203125 C-184.01578125 172.203125 -183.35578125 172.203125 -182.67578125 172.203125 C-182.40894531 172.74066406 -182.14210937 173.27820313 -181.8671875 173.83203125 C-180.99131232 175.57516644 -180.10118798 177.3111603 -179.203125 179.04296875 C-178.67847656 180.06519531 -178.15382812 181.08742187 -177.61328125 182.140625 C-177.08605469 183.16027344 -176.55882812 184.17992187 -176.015625 185.23046875 C-172.11194467 193.89140382 -172.87966989 203.2776157 -176.1171875 212.01171875 C-176.78508906 214.63194796 -176.80628374 215.74146806 -175.67578125 218.203125 C-173.19916627 220.45162983 -173.19916627 220.45162983 -170.67578125 222.203125 C-170.52544434 221.6455249 -170.37510742 221.0879248 -170.22021484 220.51342773 C-161.66715517 189.0455381 -148.10927698 158.76945131 -122.22265625 137.65625 C-121.7121875 137.17671875 -121.20171875 136.6971875 -120.67578125 136.203125 C-120.67578125 135.543125 -120.67578125 134.883125 -120.67578125 134.203125 C-175.33921715 116.61327046 -175.33921715 116.61327046 -226.17578125 131.890625 Z M148.32421875 121.203125 C147.8653125 122.15574219 147.40640625 123.10835937 146.93359375 124.08984375 C146.31412901 125.35693072 145.69431894 126.6238489 145.07421875 127.890625 C144.62369141 128.82938477 144.62369141 128.82938477 144.1640625 129.78710938 C139.49474322 139.27476877 132.67593142 144.44672139 123.01171875 148.640625 C110.87014457 150.49272954 100.18290354 149.51220042 89.94921875 142.390625 C86.28839038 139.44539065 83.84842713 136.14720059 81.32421875 132.203125 C78.68421875 132.863125 76.04421875 133.523125 73.32421875 134.203125 C73.96359375 134.8425 74.60296875 135.481875 75.26171875 136.140625 C75.72191406 136.6046875 76.18210937 137.06875 76.65625 137.546875 C77.84678353 138.72904413 79.05456158 139.89395028 80.2734375 141.046875 C103.70101963 163.59119102 115.82090892 191.3726888 124.32421875 222.203125 C136.09998872 212.339006 146.96097444 201.38768586 156.32421875 189.203125 C157.14277344 188.17832031 157.96132813 187.15351563 158.8046875 186.09765625 C169.715408 172.36313049 183.09481469 154.71390071 181.32421875 136.203125 C179.30757776 130.57775802 176.39465238 127.66796685 171.0234375 125.10546875 C163.4066515 121.88075965 156.52664154 121.05922285 148.32421875 121.203125 Z M-179.14453125 283.48632812 C-179.64339844 283.98527588 -180.14226562 284.48422363 -180.65625 284.99829102 C-182.13652465 286.47642517 -183.62453274 287.94642381 -185.11328125 289.41601562 C-191.4164281 295.68171568 -197.17360213 302.21010066 -202.67578125 309.203125 C-203.17287598 309.8206665 -203.6699707 310.43820801 -204.18212891 311.07446289 C-215.30254426 324.8974916 -229.71177051 343.36096985 -227.67578125 362.203125 C-225.9475781 366.93294414 -223.93816316 369.53913631 -219.67578125 372.203125 C-189.68275804 385.24962581 -150.33144454 373.55759597 -120.67578125 364.203125 C-122.05264363 361.00659023 -123.53822022 359.24908316 -126.23828125 357.078125 C-147.7205472 338.77554463 -159.76745448 312.67291975 -167.67578125 286.203125 C-167.99933594 285.13320313 -168.32289063 284.06328125 -168.65625 282.9609375 C-169.33534938 280.71002593 -170.00914844 278.45775303 -170.67578125 276.203125 C-173.59879163 276.203125 -177.03247035 281.38507404 -179.14453125 283.48632812 Z M124.32421875 276.203125 C124.17388184 276.7607251 124.02354492 277.3183252 123.86865234 277.89282227 C115.31559267 309.3607119 101.75771448 339.63679869 75.87109375 360.75 C75.360625 361.22953125 74.85015625 361.7090625 74.32421875 362.203125 C74.32421875 362.863125 74.32421875 363.523125 74.32421875 364.203125 C88.85786433 368.56771826 103.42207811 372.31725872 118.32421875 375.203125 C119.0114502 375.33734863 119.69868164 375.47157227 120.40673828 375.60986328 C137.06452447 378.72089191 158.79222064 380.51449331 173.88671875 371.765625 C177.74568418 369.09957627 179.82885181 366.68922583 181.32421875 362.203125 C183.19632812 343.17001311 169.04579623 324.81752247 157.55078125 310.7734375 C154.85712303 307.54010332 152.09831101 304.36764506 149.32421875 301.203125 C148.60878906 300.37554687 147.89335937 299.54796875 147.15625 298.6953125 C142.40729079 293.29593298 137.39454294 288.17350256 132.32421875 283.078125 C131.65229492 282.40152832 130.98037109 281.72493164 130.28808594 281.02783203 C129.66063477 280.40247559 129.03318359 279.77711914 128.38671875 279.1328125 C127.82082031 278.56804199 127.25492187 278.00327148 126.671875 277.42138672 C125.50336229 276.09135891 125.50336229 276.09135891 124.32421875 276.203125 Z M-73.67578125 390.203125 C-69.09137375 418.02643347 -58.68240099 459.75581984 -35.24609375 478.10546875 C-29.80616732 481.79870954 -26.42306505 483.74726079 -19.67578125 483.203125 C-8.83956456 479.67604271 -3.2281017 470.53574873 2.32421875 461.203125 C1.9375 460.74164063 1.55078125 460.28015625 1.15234375 459.8046875 C-6.40835162 450.33510369 -8.98303181 441.19396486 -7.95068359 429.14990234 C-6.65751271 419.99204745 -1.78643565 412.06125766 5.5078125 406.5546875 C11.74197822 402.46507479 18.05121426 400.62773413 25.32421875 399.203125 C25.98421875 396.233125 26.64421875 393.263125 27.32421875 390.203125 C26.091875 390.54085938 24.85953125 390.87859375 23.58984375 391.2265625 C-8.4242408 399.8993394 -37.70510692 399.51377441 -69.67578125 391.203125 C-71.00875114 390.86834123 -72.34197323 390.5345538 -73.67578125 390.203125 Z "
                fill="#497EA8" transform="translate(249.67578125,6.796875)"/>
            <path
                d="M0 0 C2.06689453 0.86938477 2.06689453 0.86938477 4.1328125 1.94140625 C4.92558594 2.35221436 5.71835938 2.76302246 6.53515625 3.1862793 C7.38980469 3.64043213 8.24445313 4.09458496 9.125 4.5625 C10.02863281 5.03921143 10.93226563 5.51592285 11.86328125 6.00708008 C23.03121558 11.97819477 33.91369332 18.46373444 44.73828125 25.03271484 C47.03808653 26.41982794 49.34383854 27.78274203 51.66796875 29.12744141 C52.86207632 29.83088979 54.05608951 30.53449842 55.25 31.23828125 C56.32765625 31.86387939 57.4053125 32.48947754 58.515625 33.1340332 C61.33969865 35.25514119 61.47566568 35.66493714 62 39 C62.09113992 40.92215205 62.12789478 42.8471734 62.12939453 44.77148438 C62.13254669 45.93369507 62.13569885 47.09590576 62.13894653 48.29333496 C62.13591019 50.17454041 62.13591019 50.17454041 62.1328125 52.09375 C62.13376923 53.39139282 62.13472595 54.68903564 62.13571167 56.02600098 C62.13718555 58.77646066 62.1350468 61.52688785 62.13037109 64.27734375 C62.12471901 67.76911815 62.12792579 71.26081491 62.13394356 74.75258636 C62.1384753 78.11631339 62.13527797 81.48002078 62.1328125 84.84375 C62.13483673 86.08169312 62.13686096 87.31963623 62.13894653 88.59509277 C62.12382986 94.28958828 62.03464553 99.97996026 61.73828125 105.66723633 C61.66951782 107.08568596 61.66951782 107.08568596 61.59936523 108.53279114 C60.83807474 111.66654422 59.639294 112.62670135 57.0546875 114.48046875 C55.35160593 115.42638391 53.62282694 116.32706795 51.875 117.1875 C50.02320093 118.19227246 48.17163988 119.19748371 46.3203125 120.203125 C45.40668945 120.67943359 44.49306641 121.15574219 43.55175781 121.64648438 C40.18738094 123.4310333 36.97851699 125.42170893 33.75 127.4375 C23.41700417 133.71451239 12.68777764 139.35572304 2 145 C1.33766357 145.40677979 0.67532715 145.81355957 -0.00708008 146.23266602 C-3.32182605 147.5089427 -5.89912959 146.46305215 -9.06689453 145.13061523 C-9.74864746 144.77684814 -10.43040039 144.42308105 -11.1328125 144.05859375 C-11.92558594 143.64778564 -12.71835938 143.23697754 -13.53515625 142.8137207 C-14.38980469 142.35956787 -15.24445313 141.90541504 -16.125 141.4375 C-17.02863281 140.96078857 -17.93226563 140.48407715 -18.86328125 139.99291992 C-30.03063733 134.02211441 -40.93150585 127.55361455 -51.73828125 120.95556641 C-54.03306114 119.57972906 -56.32387209 118.26204843 -58.66796875 116.97802734 C-59.26730225 116.63849533 -59.86663574 116.29896332 -60.48413086 115.94914246 C-62.15294678 115.00417515 -63.83396696 114.08085528 -65.515625 113.15893555 C-68 111 -68 111 -68.85107422 108.12817383 C-68.94011618 106.75410276 -68.98229501 105.37683925 -69 104 C-69.0243512 103.02024704 -69.04870239 102.04049408 -69.0737915 101.03105164 C-69.13383045 97.35327101 -69.13854836 93.67825707 -69.1328125 90 C-69.13348731 88.63671857 -69.1344588 87.27343727 -69.13571167 85.91015625 C-69.13718033 83.06248827 -69.13506095 80.2148518 -69.13037109 77.3671875 C-69.12467431 73.73264049 -69.12795778 70.09816735 -69.13394356 66.46362305 C-69.13757169 63.65136161 -69.13640026 60.83911745 -69.13381577 58.02685547 C-69.13283232 56.04003857 -69.1358483 54.05322098 -69.13894653 52.06640625 C-69.09769507 36.12462853 -69.09769507 36.12462853 -66.28857422 33.24658203 C-65.5513916 32.83778809 -64.81420898 32.42899414 -64.0546875 32.0078125 C-62.82226318 31.29915039 -62.82226318 31.29915039 -61.56494141 30.57617188 C-60.67726074 30.09728516 -59.78958008 29.61839844 -58.875 29.125 C-57.02587125 28.07582113 -55.17691403 27.02633988 -53.328125 25.9765625 C-52.41482422 25.46899414 -51.50152344 24.96142578 -50.56054688 24.43847656 C-47.77971239 22.87624575 -45.06004188 21.23492118 -42.34594727 19.56054688 C-32.8877726 13.73187462 -23.10147308 8.44917191 -13.29638672 3.23144531 C-11.40029136 2.21465762 -9.526853 1.15574031 -7.66015625 0.0859375 C-4.47473548 -1.21442516 -3.2729664 -0.87026318 0 0 Z "
                fill="#FAF2BB" transform="translate(230,183)"/>
            <path
                d="M0 0 C9.63247858 6.55938219 16.43150698 15.1505472 19.3515625 26.546875 C21.53177598 38.12182659 19.75125401 48.54297133 13.6015625 58.671875 C12.78156757 59.86862435 11.94973689 61.05742942 11.1015625 62.234375 C10.5446875 63.08 9.9878125 63.925625 9.4140625 64.796875 C1.27790852 73.37282109 -8.72090009 78.20674231 -20.48046875 78.75610352 C-32.89726126 78.97102934 -42.16991754 75.52749792 -51.70703125 67.4140625 C-60.77347995 58.39609748 -64.07086989 48.38117241 -64.1484375 35.921875 C-64.179375 34.69694336 -64.179375 34.69694336 -64.2109375 33.44726562 C-64.26939998 24.2759645 -60.99376816 17.68387742 -55.8984375 10.234375 C-55.3415625 9.38875 -54.7846875 8.543125 -54.2109375 7.671875 C-39.82119068 -7.49569597 -17.92077949 -10.91670125 0 0 Z "
                fill="#4A7EA8" transform="translate(248.8984375,219.765625)"/>
            <path
                d="M0 0 C2.67603906 0.75996275 4.87253327 1.75707373 7.3359375 3.046875 C9.65864064 4.0730007 11.99732196 5.05724135 14.3359375 6.046875 C13.90211411 17.62547171 12.90884351 29.06930282 11.38745117 40.55883789 C10.769015 45.37286964 10.19832556 49.95817797 10.5859375 54.80859375 C10.88629873 58.91576964 10.81976594 62.11517389 9.3359375 66.046875 C4.76654552 70.90623146 -1.25219992 74.06812741 -6.95947266 77.40087891 C-11.41651325 80.11340533 -15.55721809 83.22912865 -19.7265625 86.359375 C-20.51828857 86.9462207 -21.31001465 87.53306641 -22.12573242 88.13769531 C-27.74406098 92.31242968 -33.2713118 96.58295283 -38.6640625 101.046875 C-42.06861938 99.49934914 -44.89520356 97.5182387 -47.8515625 95.234375 C-49.17220703 94.23470703 -49.17220703 94.23470703 -50.51953125 93.21484375 C-53.08163064 90.62474327 -53.57280222 89.67193609 -53.6640625 86.046875 C-53.18303641 83.02703663 -52.41950805 80.11636124 -51.6015625 77.171875 C-51.37186768 76.32979492 -51.14217285 75.48771484 -50.90551758 74.62011719 C-43.94316046 49.86194718 -30.91732366 28.91832689 -13.6640625 10.046875 C-13.18646484 9.50708008 -12.70886719 8.96728516 -12.21679688 8.41113281 C-4.75144794 0.08360319 -4.75144794 0.08360319 0 0 Z "
                fill="#FCF3BB" transform="translate(132.6640625,140.953125)"/>
            <path
                d="M0 0 C0.57363281 0.43828125 1.14726562 0.8765625 1.73828125 1.328125 C2.60646484 1.97394531 2.60646484 1.97394531 3.4921875 2.6328125 C27.02137667 23.0620437 46.1206112 54.1352926 50.73828125 85.328125 C50.59694535 88.99720504 49.95665133 90.10109231 47.375 92.78515625 C46.40175781 93.56246094 45.42851562 94.33976562 44.42578125 95.140625 C43.46027344 95.93082031 42.49476563 96.72101563 41.5 97.53515625 C38.73828125 99.328125 38.73828125 99.328125 34.73828125 99.328125 C32.57527203 97.83319204 30.61866313 96.32522591 28.61328125 94.640625 C23.10998035 90.16698817 17.50216689 85.89846539 11.73828125 81.765625 C10.98345459 81.22365479 10.22862793 80.68168457 9.45092773 80.12329102 C7.21557326 78.52180359 4.9775214 76.92417386 2.73828125 75.328125 C2.02913574 74.8223291 1.31999023 74.3165332 0.58935547 73.79541016 C-0.43714111 73.06330322 -0.43714111 73.06330322 -1.484375 72.31640625 C-2.13470703 71.85242432 -2.78503906 71.38844238 -3.45507812 70.91040039 C-4.67288617 70.04237812 -5.89159292 69.17561488 -7.11132812 68.31030273 C-11.15415962 65.43568413 -11.15415962 65.43568413 -12.26171875 64.328125 C-12.45525446 62.61300469 -12.58614746 60.89076135 -12.69140625 59.16796875 C-12.76311035 58.07532715 -12.83481445 56.98268555 -12.90869141 55.85693359 C-12.98394043 54.67180176 -13.05918945 53.48666992 -13.13671875 52.265625 C-13.83888745 41.87989897 -14.84923231 31.59351562 -16.29638672 21.28491211 C-17.07733313 15.56852513 -17.39153692 10.09913267 -17.26171875 4.328125 C-14.85054367 3.43443075 -12.43489815 2.56310734 -10.01171875 1.703125 C-9.32980469 1.44789063 -8.64789063 1.19265625 -7.9453125 0.9296875 C-2.85706225 -0.84873006 -2.85706225 -0.84873006 0 0 Z "
                fill="#FCF3BB" transform="translate(323.26171875,141.671875)"/>
            <path
                d="M0 0 C3.40455688 1.54752586 6.23114106 3.5286363 9.1875 5.8125 C10.06792969 6.47894531 10.94835937 7.14539063 11.85546875 7.83203125 C14.41756814 10.42213173 14.90873972 11.37493891 15 15 C14.51897391 18.01983837 13.75544555 20.93051376 12.9375 23.875 C12.70780518 24.71708008 12.47811035 25.55916016 12.24145508 26.42675781 C4.61801222 53.53575138 -10.83857475 79.20821351 -32 98 C-32.61101562 98.5775 -33.22203125 99.155 -33.8515625 99.75 C-36 101 -36 101 -38.5859375 100.70703125 C-39.50632812 100.41183594 -40.42671875 100.11664063 -41.375 99.8125 C-42.74785156 99.38904297 -42.74785156 99.38904297 -44.1484375 98.95703125 C-45.08945312 98.64121094 -46.03046875 98.32539063 -47 98 C-48.10601562 97.63261719 -49.21203125 97.26523437 -50.3515625 96.88671875 C-51.22554688 96.59410156 -52.09953125 96.30148437 -53 96 C-52.57120176 86.78083774 -51.95942638 77.73777323 -50.46875 68.6171875 C-49.95786688 64.74418975 -50.01454321 60.9733314 -50.09375 57.0703125 C-50.19943459 38.14426669 -50.19943459 38.14426669 -46.33935547 32.62597656 C-42.01414229 28.57627424 -36.91762409 25.98667154 -31.63671875 23.38476562 C-27.28507438 21.09934647 -23.43210333 18.18248014 -19.5 15.25 C-18.75766113 14.71157471 -18.01532227 14.17314941 -17.25048828 13.6184082 C-11.30875528 9.30349908 -5.58952224 4.7646368 0 0 Z "
                fill="#FCF3BB" transform="translate(359,270)"/>
            <path
                d="M0 0 C4.80068418 2.61471226 9.07517031 5.47571623 13.3125 8.9375 C18.83400061 13.35591185 24.45887032 17.60363799 30.1875 21.75 C30.8988208 22.26812256 31.6101416 22.78624512 32.34301758 23.32006836 C33.04837646 23.82803955 33.75373535 24.33601074 34.48046875 24.859375 C35.54974609 25.65504883 35.54974609 25.65504883 36.640625 26.46679688 C39.00319462 28.10901774 39.00319462 28.10901774 41.90625 29.17382812 C45.44136716 30.76532582 47.47093053 32.03091792 50 35 C52.39552881 41.98440418 52.28923212 49.6955963 52.625 57 C52.75433726 59.00942778 52.88841217 61.01855652 53.02734375 63.02734375 C53.34811103 67.81204873 53.61398087 72.59766016 53.85998535 77.38671875 C54.06640747 81.23945178 54.32206092 85.08833744 54.5859375 88.9375 C54.66634277 90.12214844 54.74674805 91.30679688 54.82958984 92.52734375 C54.8858252 93.34332031 54.94206055 94.15929687 55 95 C53.5 95.64583333 52 96.29166667 50.5 96.9375 C49.24703125 97.47697266 49.24703125 97.47697266 47.96875 98.02734375 C44.29575176 99.23073396 40.89511898 100.26386919 37 100 C33.98046875 98.1484375 33.98046875 98.1484375 31.1875 95.375 C30.428927 94.62827026 30.428927 94.62827026 29.6550293 93.86645508 C28.06771011 92.27469031 26.52861646 90.64811583 25 89 C24.51563477 88.48002441 24.03126953 87.96004883 23.53222656 87.42431641 C16.35656425 79.59476268 10.35683882 71.15747458 5 62 C4.61569824 61.34515625 4.23139648 60.6903125 3.83544922 60.015625 C-2.27957701 49.43609964 -6.61201341 38.7276459 -10 27 C-10.35191406 25.79214844 -10.70382813 24.58429688 -11.06640625 23.33984375 C-13.45964471 14.50739869 -13.45964471 14.50739869 -12 11 C-10.29296875 8.96484375 -10.29296875 8.96484375 -8.1875 6.9375 C-7.15689453 5.93009766 -7.15689453 5.93009766 -6.10546875 4.90234375 C-4.14645285 3.13232382 -2.13993593 1.54363918 0 0 Z "
                fill="#FCF3BB" transform="translate(92,270)"/>
            <path
                d="M0 0 C0.98613281 0.26296875 1.97226562 0.5259375 2.98828125 0.796875 C5 2 5 2 6.14453125 4.609375 C6.36496094 5.64578125 6.58539063 6.6821875 6.8125 7.75 C7.16248047 9.28914063 7.16248047 9.28914063 7.51953125 10.859375 C7.99409741 13.96141725 8.08909866 16.86747856 8 20 C1.87355917 23.14581604 -4.35370324 25.92505756 -10.6875 28.625 C-16.83824644 31.25271122 -22.93791692 33.9267256 -28.92578125 36.91015625 C-29.86397705 37.37534668 -30.80217285 37.84053711 -31.76879883 38.31982422 C-33.54854212 39.21104813 -35.32102305 40.11697253 -37.0847168 41.03955078 C-42.16421459 43.57701869 -45.32386867 44.67289651 -51 43 C-53.74562441 41.89461397 -56.36370485 40.59286376 -59 39.25 C-68.08031945 34.77682086 -77.34601327 30.82436476 -86.6875 26.9375 C-87.39592041 26.64242554 -88.10434082 26.34735107 -88.83422852 26.04333496 C-92.88703349 24.35627205 -96.94238042 22.67545697 -101 21 C-101.02616204 16.80545531 -100.9850973 12.87416163 -100.1875 8.75 C-100.03667969 7.91984375 -99.88585937 7.0896875 -99.73046875 6.234375 C-98.88949383 3.66198113 -98.04266256 2.74121366 -96 1 C-94.19750977 0.23217773 -94.19750977 0.23217773 -92.19140625 -0.31640625 C-91.45043701 -0.52233398 -90.70946777 -0.72826172 -89.94604492 -0.94042969 C-89.1594751 -1.14571289 -88.37290527 -1.35099609 -87.5625 -1.5625 C-86.75208252 -1.77938477 -85.94166504 -1.99626953 -85.10668945 -2.21972656 C-56.6795848 -9.66176131 -28.08189434 -7.86332822 0 0 Z "
                fill="#FBF3BB" transform="translate(273,113)"/>
            <path
                d="M0 0 C3.90713743 1.62401017 7.66145926 3.53161839 11.4375 5.4375 C21.36336254 10.3390601 31.38976126 14.80136212 41.64624023 18.96459961 C43.07432007 19.54479858 43.07432007 19.54479858 44.53125 20.13671875 C45.37236328 20.47405029 46.21347656 20.81138184 47.08007812 21.15893555 C49 22 49 22 50 23 C49.96151565 24.71107347 49.84308059 26.42057982 49.6875 28.125 C49.60886719 29.05570312 49.53023438 29.98640625 49.44921875 30.9453125 C48.91563609 34.57367459 48.44063075 37.60508742 47 41 C44.42897236 42.37206962 42.63234053 43.07340779 39.875 43.75 C39.16432373 43.94625977 38.45364746 44.14251953 37.72143555 44.34472656 C25.99158774 47.48026223 14.14616226 49.51354544 2 50 C1.00097656 50.04125 0.00195312 50.0825 -1.02734375 50.125 C-18.09510331 50.46936841 -34.60671661 47.57486978 -51 43 C-52.47919922 42.62101562 -52.47919922 42.62101562 -53.98828125 42.234375 C-56 41 -56 41 -57.14453125 38.171875 C-57.36496094 37.04265625 -57.58539063 35.9134375 -57.8125 34.75 C-58.16248047 33.07164062 -58.16248047 33.07164062 -58.51953125 31.359375 C-58.97449292 28.17834219 -59.03450845 25.2061998 -59 22 C-58.33806641 21.72438232 -57.67613281 21.44876465 -56.99414062 21.16479492 C-3.81072316 -1.03003974 -3.81072316 -1.03003974 0 0 Z "
                fill="#FCF3BB" transform="translate(231,356)"/>
            <path
                d="M0 0 C3.79007714 1.89503857 7.08537464 4.09132785 10.5 6.5625 C11.10859863 6.99997559 11.71719727 7.43745117 12.34423828 7.88818359 C18.2904334 12.17777338 24.15774293 16.57015673 30 21 C28.84047781 24.47856656 27.96181393 25.03915291 25.0625 27.14453125 C24.24910156 27.73943359 23.43570312 28.33433594 22.59765625 28.94726562 C21.31181641 29.87055664 21.31181641 29.87055664 20 30.8125 C18.76056641 31.71838867 18.76056641 31.71838867 17.49609375 32.64257812 C1.87199778 44 1.87199778 44 0 44 C0 29.48 0 14.96 0 0 Z "
                fill="#F9F1BB" transform="translate(313,234)"/>
            <path
                d="M0 0 C7.18500079 2.26540608 14.03757821 5.04515673 20.9375 8.0625 C21.97712891 8.50916016 23.01675781 8.95582031 24.08789062 9.41601562 C25.07853516 9.84720703 26.06917969 10.27839844 27.08984375 10.72265625 C27.98566162 11.11203369 28.88147949 11.50141113 29.80444336 11.90258789 C32 13 32 13 34 15 C27.53234294 19.65217438 20.65869846 23.47830065 13.6862793 27.30371094 C8.59857375 30.09787904 3.58933356 32.98403633 -1.34765625 36.0390625 C-3 37 -3 37 -4 37 C-4.21195076 28.84347962 -3.58540887 20.96311663 -2.5625 12.875 C-2.42779297 11.740625 -2.29308594 10.60625 -2.15429688 9.4375 C-1.13375235 1.13375235 -1.13375235 1.13375235 0 0 Z "
                fill="#F8F1BB" transform="translate(168,155)"/>
            <path
                d="M0 0 C2.16425555 4.32851111 2.02038114 9.80274825 2.5625 14.5625 C2.70107422 15.71814453 2.83964844 16.87378906 2.98242188 18.06445312 C3.71558695 24.42456984 4.15713185 30.59858493 4 37 C-3.12116399 33.62421995 -9.88203598 29.77104559 -16.64990234 25.74707031 C-22.36161541 22.35601976 -28.13329229 19.11708444 -34 16 C-34 15.34 -34 14.68 -34 14 C-30.16880539 12.22451341 -26.33467198 10.45546214 -22.5 8.6875 C-21.42234375 8.18798828 -20.3446875 7.68847656 -19.234375 7.17382812 C-3.65149007 0 -3.65149007 0 0 0 Z "
                fill="#F8F1BB" transform="translate(285,155)"/>
            <path
                d="M0 0 C0 14.52 0 29.04 0 44 C-3.79007714 42.10496143 -7.08537464 39.90867215 -10.5 37.4375 C-11.10859863 37.00002441 -11.71719727 36.56254883 -12.34423828 36.11181641 C-18.2904334 31.82222662 -24.15774293 27.42984327 -30 23 C-28.84047781 19.52143344 -27.96181393 18.96084709 -25.0625 16.85546875 C-24.24910156 16.26056641 -23.43570313 15.66566406 -22.59765625 15.05273438 C-21.74042969 14.43720703 -20.88320312 13.82167969 -20 13.1875 C-19.17371094 12.58357422 -18.34742187 11.97964844 -17.49609375 11.35742188 C-1.87199778 0 -1.87199778 0 0 0 Z "
                fill="#FAF2BB" transform="translate(140,234)"/>
            <path
                d="M0 0 C6.6660302 3.12127061 12.94872426 6.71573712 19.22509766 10.54052734 C25.36274936 14.26300765 31.643516 17.66632964 38 21 C38 21.66 38 22.32 38 23 C34.54344659 24.58723917 31.08443467 26.16905168 27.625 27.75 C26.65949219 28.1934375 25.69398438 28.636875 24.69921875 29.09375 C7.37522978 37 7.37522978 37 4 37 C1.65373531 24.64890853 0.4039475 12.56416027 0 0 Z "
                fill="#F9F1BB" transform="translate(164,320)"/>
            <path
                d="M0 0 C-0.51170828 12.47509487 -2.08812171 24.66901453 -4 37 C-11.95211472 34.91899994 -19.2007776 31.80810897 -26.625 28.3125 C-27.72457031 27.80138672 -28.82414062 27.29027344 -29.95703125 26.76367188 C-32.64088415 25.51509683 -35.32171532 24.26046333 -38 23 C-38 22.34 -38 21.68 -38 21 C-37.41210693 20.68361572 -36.82421387 20.36723145 -36.21850586 20.04125977 C-25.79436106 14.42106507 -15.39412592 8.80178803 -5.30639648 2.59204102 C-1.08804802 0 -1.08804802 0 0 0 Z "
                fill="#F9F1BB" transform="translate(289,320)"/>
            <path
                d="M0 0 C6.79411765 5.82352941 6.79411765 5.82352941 7.60546875 10.0546875 C7.78071497 15.01165214 7.00915544 18.69116608 4.1875 22.875 C-0.23783811 26.96843776 -3.67214255 28.23836397 -9.75 28.16015625 C-14.0420991 27.56674103 -16.85677497 24.96254917 -19.625 21.8125 C-22.31885434 17.41726397 -22.4279347 12.87540693 -21.8125 7.875 C-17.35324422 -1.04351155 -9.21350307 -3.68540123 0 0 Z "
                fill="#AED6ED" transform="translate(47.8125,192.125)"/>
            <path
                d="M0 0 C4.3511403 2.31411765 7.11775618 5.45995819 9 10 C9.52092045 15.29602457 9.26203624 18.95237776 6.32421875 23.45703125 C3.48199616 26.76876553 0.26370484 28.57528168 -4.01953125 29.37890625 C-9.17280898 29.68435866 -12.16635339 28.31087662 -16 25 C-19.93713353 20.64843137 -20.62990978 17.08535722 -20.390625 11.40234375 C-19.67600352 7.00742166 -17.42926076 4.30675269 -14.22265625 1.375 C-9.89095072 -1.30471941 -4.88662961 -0.79846889 0 0 Z "
                fill="#AED6ED" transform="translate(283,428)"/>
            <path
                d="M0 0 C4.1402585 1.46126771 7.36288255 3.5425664 10.08203125 7.0625 C12.03998952 11.19504171 11.70423143 15.57716338 11 20 C9.22652978 23.81978202 7.74050477 25.48336877 4.3125 27.875 C0.06476306 29.31762764 -3.56130715 29.72387285 -8 29 C-13.11762818 26.34641502 -16.17705942 23.46882174 -18 18 C-18.55872023 12.18930962 -17.5814004 8.49343404 -14 4 C-9.50400187 0.01491075 -5.79621093 -0.94086791 0 0 Z "
                fill="#AED6ED" transform="translate(365,106)"/>
            <path d="M0 0 C5.61 0 11.22 0 17 0 C17 7.26 17 14.52 17 22 C11.39 22 5.78 22 0 22 C0 14.74 0 7.48 0 0 Z "
                  fill="#ACD4EC" transform="translate(218,245)"/>
        </svg>
    ),
    twitter: (props: RootIconProps) => (
        <svg
            {...props}
            height="23"
            viewBox="0 0 1200 1227"
            width="23"
            xmlns="http://www.w3.org/2000/svg"
        >
            <path
                d="M714.163 519.284L1160.89 0H1055.03L667.137 450.887L357.328 0H0L468.492 681.821L0 1226.37H105.866L515.491 750.218L842.672 1226.37H1200L714.137 519.284H714.163ZM569.165 687.828L521.697 619.934L144.011 79.6944H306.615L611.412 515.685L658.88 583.579L1055.08 1150.3H892.476L569.165 687.854V687.828Z"/>
        </svg>
    ),
    Github: (props: RootIconProps) => (
        <svg viewBox="0 0 438.549 438.549" {...props}>
            <path
                fill="currentColor"
                d="M409.132 114.573c-19.608-33.596-46.205-60.194-79.798-79.8-33.598-19.607-70.277-29.408-110.063-29.408-39.781 0-76.472 9.804-110.063 29.408-33.596 19.605-60.192 46.204-79.8 79.8C9.803 148.168 0 184.854 0 224.63c0 47.78 13.94 90.745 41.827 128.906 27.884 38.164 63.906 64.572 108.063 79.227 5.14.954 8.945.283 11.419-1.996 2.475-2.282 3.711-5.14 3.711-8.562 0-.571-.049-5.708-.144-15.417a2549.81 2549.81 0 01-.144-25.406l-6.567 1.136c-4.187.767-9.469 1.092-15.846 1-6.374-.089-12.991-.757-19.842-1.999-6.854-1.231-13.229-4.086-19.13-8.559-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-.951-2.568-2.098-3.711-3.429-1.142-1.331-1.997-2.663-2.568-3.997-.572-1.335-.098-2.43 1.427-3.289 1.525-.859 4.281-1.276 8.28-1.276l5.708.853c3.807.763 8.516 3.042 14.133 6.851 5.614 3.806 10.229 8.754 13.846 14.842 4.38 7.806 9.657 13.754 15.846 17.847 6.184 4.093 12.419 6.136 18.699 6.136 6.28 0 11.704-.476 16.274-1.423 4.565-.952 8.848-2.383 12.847-4.285 1.713-12.758 6.377-22.559 13.988-29.41-10.848-1.14-20.601-2.857-29.264-5.14-8.658-2.286-17.605-5.996-26.835-11.14-9.235-5.137-16.896-11.516-22.985-19.126-6.09-7.614-11.088-17.61-14.987-29.979-3.901-12.374-5.852-26.648-5.852-42.826 0-23.035 7.52-42.637 22.557-58.817-7.044-17.318-6.379-36.732 1.997-58.24 5.52-1.715 13.706-.428 24.554 3.853 10.85 4.283 18.794 7.952 23.84 10.994 5.046 3.041 9.089 5.618 12.135 7.708 17.705-4.947 35.976-7.421 54.818-7.421s37.117 2.474 54.823 7.421l10.849-6.849c7.419-4.57 16.18-8.758 26.262-12.565 10.088-3.805 17.802-4.853 23.134-3.138 8.562 21.509 9.325 40.922 2.279 58.24 15.036 16.18 22.559 35.787 22.559 58.817 0 16.178-1.958 30.497-5.853 42.966-3.9 12.471-8.941 22.457-15.125 29.979-6.191 7.521-13.901 13.85-23.131 18.986-9.232 5.14-18.182 8.85-26.84 11.136-8.662 2.286-18.415 4.004-29.263 5.146 9.894 8.562 14.842 22.077 14.842 40.539v60.237c0 3.422 1.19 6.279 3.572 8.562 2.379 2.279 6.136 2.95 11.276 1.995 44.163-14.653 80.185-41.062 108.068-79.226 27.88-38.161 41.825-81.126 41.825-128.906-.01-39.771-9.818-76.454-29.414-110.049z"
            ></path>
        </svg>
    ),
    radix: (props: RootIconProps) => (
        <svg viewBox="0 0 25 25" fill="none" {...props}>
            <path
                d="M12 25C7.58173 25 4 21.4183 4 17C4 12.5817 7.58173 9 12 9V25Z"
                fill="currentcolor"
            ></path>
            <path d="M12 0H4V8H12V0Z" fill="currentcolor"></path>
            <path
                d="M17 8C19.2091 8 21 6.20914 21 4C21 1.79086 19.2091 0 17 0C14.7909 0 13 1.79086 13 4C13 6.20914 14.7909 8 17 8Z"
                fill="currentcolor"
            ></path>
        </svg>
    ),
    aria: (props: RootIconProps) => (
        <svg role="img" viewBox="0 0 24 24" fill="currentColor" {...props}>
            <path
                d="M13.966 22.624l-1.69-4.281H8.122l3.892-9.144 5.662 13.425zM8.884 1.376H0v21.248zm15.116 0h-8.884L24 22.624Z"/>
        </svg>
    ),
    npm: (props: RootIconProps) => (
        <svg viewBox="0 0 24 24" {...props}>
            <path
                d="M1.763 0C.786 0 0 .786 0 1.763v20.474C0 23.214.786 24 1.763 24h20.474c.977 0 1.763-.786 1.763-1.763V1.763C24 .786 23.214 0 22.237 0zM5.13 5.323l13.837.019-.009 13.836h-3.464l.01-10.382h-3.456L12.04 19.17H5.113z"
                fill="currentColor"
            />
        </svg>
    ),
    yarn: (props: RootIconProps) => (
        <svg viewBox="0 0 24 24" {...props}>
            <path
                d="M12 0C5.375 0 0 5.375 0 12s5.375 12 12 12 12-5.375 12-12S18.625 0 12 0zm.768 4.105c.183 0 .363.053.525.157.125.083.287.185.755 1.154.31-.088.468-.042.551-.019.204.056.366.19.463.375.477.917.542 2.553.334 3.605-.241 1.232-.755 2.029-1.131 2.576.324.329.778.899 1.117 1.825.278.774.31 1.478.273 2.015a5.51 5.51 0 0 0 .602-.329c.593-.366 1.487-.917 2.553-.931.714-.009 1.269.445 1.353 1.103a1.23 1.23 0 0 1-.945 1.362c-.649.158-.95.278-1.821.843-1.232.797-2.539 1.242-3.012 1.39a1.686 1.686 0 0 1-.704.343c-.737.181-3.266.315-3.466.315h-.046c-.783 0-1.214-.241-1.45-.491-.658.329-1.51.19-2.122-.134a1.078 1.078 0 0 1-.58-1.153 1.243 1.243 0 0 1-.153-.195c-.162-.25-.528-.936-.454-1.946.056-.723.556-1.367.88-1.71a5.522 5.522 0 0 1 .408-2.256c.306-.727.885-1.348 1.32-1.737-.32-.537-.644-1.367-.329-2.21.227-.602.412-.936.82-1.08h-.005c.199-.074.389-.153.486-.259a3.418 3.418 0 0 1 2.298-1.103c.037-.093.079-.185.125-.283.31-.658.639-1.029 1.024-1.168a.94.94 0 0 1 .328-.06zm.006.7c-.507.016-1.001 1.519-1.001 1.519s-1.27-.204-2.266.871c-.199.218-.468.334-.746.44-.079.028-.176.023-.417.672-.371.991.625 2.094.625 2.094s-1.186.839-1.626 1.881c-.486 1.144-.338 2.261-.338 2.261s-.843.732-.899 1.487c-.051.663.139 1.2.343 1.515.227.343.51.176.51.176s-.561.653-.037.931c.477.25 1.283.394 1.71-.037.31-.31.371-1.001.486-1.283.028-.065.12.111.209.199.097.093.264.195.264.195s-.755.324-.445 1.066c.102.246.468.403 1.066.398.222-.005 2.664-.139 3.313-.296.375-.088.505-.283.505-.283s1.566-.431 2.998-1.357c.917-.598 1.293-.76 2.034-.936.612-.148.57-1.098-.241-1.084-.839.009-1.575.44-2.196.825-1.163.718-1.742.672-1.742.672l-.018-.032c-.079-.13.371-1.293-.134-2.678-.547-1.515-1.413-1.881-1.344-1.997.297-.5 1.038-1.297 1.334-2.78.176-.899.13-2.377-.269-3.151-.074-.144-.732.241-.732.241s-.616-1.371-.788-1.483a.271.271 0 0 0-.157-.046z"
                fill="currentColor"
            />
        </svg>
    ),
    pnpm: (props: RootIconProps) => (
        <svg viewBox="0 0 24 24" {...props}>
            <path
                d="M0 0v7.5h7.5V0zm8.25 0v7.5h7.498V0zm8.25 0v7.5H24V0zM8.25 8.25v7.5h7.498v-7.5zm8.25 0v7.5H24v-7.5zM0 16.5V24h7.5v-7.5zm8.25 0V24h7.498v-7.5zm8.25 0V24H24v-7.5z"
                fill="currentColor"
            />
        </svg>
    ),
    React: (props: RootIconProps) => (
        <svg viewBox="0 0 24 24" {...props}>
            <path
                d="M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z"
                fill="currentColor"
            />
        </svg>
    ),
    Tailwind: (props: RootIconProps) => (
        <svg viewBox="0 0 24 24" {...props}>
            <path
                d="M12.001,4.8c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 C13.666,10.618,15.027,12,18.001,12c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C16.337,6.182,14.976,4.8,12.001,4.8z M6.001,12c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 c1.177,1.194,2.538,2.576,5.512,2.576c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C10.337,13.382,8.976,12,6.001,12z"
                fill="currentColor"
            />
        </svg>
    ),
    google: (props: RootIconProps) => (
        <svg role="img" viewBox="0 0 24 24" {...props}>
            <path
                fill="currentColor"
                d="M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z"
            />
        </svg>
    ),
    apple: (props: RootIconProps) => (
        <svg role="img" viewBox="0 0 24 24" {...props}>
            <path
                d="M12.152 6.896c-.948 0-2.415-1.078-3.96-1.04-2.04.027-3.91 1.183-4.961 3.014-2.117 3.675-.546 9.103 1.519 12.09 1.013 1.454 2.208 3.09 3.792 3.039 1.52-.065 2.09-.987 3.935-.987 1.831 0 2.35.987 3.96.948 1.637-.026 2.676-1.48 3.676-2.948 1.156-1.688 1.636-3.325 1.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04 2.48-4.494 2.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675 1.09-4.61 1.09zM15.53 3.83c.843-1.012 1.4-2.427 1.245-3.83-1.207.052-2.662.805-3.532 1.818-.78.896-1.454 2.338-1.273 3.714 1.338.104 2.715-.688 3.559-1.701"
                fill="currentColor"
            />
        </svg>
    ),
    paypal: (props: RootIconProps) => (
        <svg role="img" viewBox="0 0 24 24" {...props}>
            <path
                d="M7.076 21.337H2.47a.641.641 0 0 1-.633-.74L4.944.901C5.026.382 5.474 0 5.998 0h7.46c2.57 0 4.578.543 5.69 1.81 1.01 1.15 1.304 2.42 1.012 4.287-.023.143-.047.288-.077.437-.983 5.05-4.349 6.797-8.647 6.797h-2.19c-.524 0-.968.382-1.05.9l-1.12 7.106zm14.146-14.42a3.35 3.35 0 0 0-.607-.541c-.013.076-.026.175-.041.254-.93 4.778-4.005 7.201-9.138 7.201h-2.19a.563.563 0 0 0-.556.479l-1.187 7.527h-.506l-.24 1.516a.56.56 0 0 0 .554.647h3.882c.46 0 .85-.334.922-.788.06-.26.76-4.852.816-5.09a.932.932 0 0 1 .923-.788h.58c3.76 0 6.705-1.528 7.565-5.946.36-1.847.174-3.388-.777-4.471z"
                fill="currentColor"
            />
        </svg>
    ),
    Spinner: (props: RootIconProps) => (
        <svg
            xmlns="http://www.w3.org/2000/svg"
            width="24"
            height="24"
            viewBox="0 0 24 24"
            fill="none"
            stroke="currentColor"
            strokeWidth="2"
            strokeLinecap="round"
            strokeLinejoin="round"
            {...props}
        >
            <path d="M21 12a9 9 0 1 1-6.219-8.56"/>
        </svg>
    ),
    EyeOpen: (props: RootIconProps) => (
        <svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
            <path
                d="M7.5 11C4.80285 11 2.52952 9.62184 1.09622 7.50001C2.52952 5.37816 4.80285 4 7.5 4C10.1971 4 12.4705 5.37816 13.9038 7.50001C12.4705 9.62183 10.1971 11 7.5 11ZM7.5 3C4.30786 3 1.65639 4.70638 0.0760002 7.23501C-0.0253338 7.39715 -0.0253334 7.60288 0.0760014 7.76501C1.65639 10.2936 4.30786 12 7.5 12C10.6921 12 13.3436 10.2936 14.924 7.76501C15.0253 7.60288 15.0253 7.39715 14.924 7.23501C13.3436 4.70638 10.6921 3 7.5 3ZM7.5 9.5C8.60457 9.5 9.5 8.60457 9.5 7.5C9.5 6.39543 8.60457 5.5 7.5 5.5C6.39543 5.5 5.5 6.39543 5.5 7.5C5.5 8.60457 6.39543 9.5 7.5 9.5Z"
                fill="currentColor" fillRule="evenodd" clipRule="evenodd"></path>
        </svg>
    ),
    EyeClose: (props: RootIconProps) => (
        <svg width="15" height="15" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
            <path
                d="M14.7649 6.07596C14.9991 6.22231 15.0703 6.53079 14.9239 6.76495C14.4849 7.46743 13.9632 8.10645 13.3702 8.66305L14.5712 9.86406C14.7664 10.0593 14.7664 10.3759 14.5712 10.5712C14.3759 10.7664 14.0593 10.7664 13.8641 10.5712L12.6011 9.30817C11.805 9.90283 10.9089 10.3621 9.93375 10.651L10.383 12.3277C10.4544 12.5944 10.2961 12.8685 10.0294 12.94C9.76267 13.0115 9.4885 12.8532 9.41704 12.5865L8.95917 10.8775C8.48743 10.958 8.00036 10.9999 7.50001 10.9999C6.99965 10.9999 6.51257 10.958 6.04082 10.8775L5.58299 12.5864C5.51153 12.8532 5.23737 13.0115 4.97064 12.94C4.7039 12.8686 4.5456 12.5944 4.61706 12.3277L5.06625 10.651C4.09111 10.3621 3.19503 9.90282 2.3989 9.30815L1.1359 10.5712C0.940638 10.7664 0.624058 10.7664 0.428798 10.5712C0.233537 10.3759 0.233537 10.0593 0.428798 9.86405L1.62982 8.66303C1.03682 8.10643 0.515113 7.46742 0.0760677 6.76495C-0.0702867 6.53079 0.000898544 6.22231 0.235065 6.07596C0.469231 5.9296 0.777703 6.00079 0.924058 6.23496C1.40354 7.00213 1.989 7.68057 2.66233 8.2427C2.67315 8.25096 2.6837 8.25972 2.69397 8.26898C4.00897 9.35527 5.65537 9.99991 7.50001 9.99991C10.3078 9.99991 12.6564 8.5063 14.076 6.23495C14.2223 6.00079 14.5308 5.9296 14.7649 6.07596Z"
                fill="currentColor" fillRule="evenodd" clipRule="evenodd"></path>
        </svg>
    ),
    NextJs: (props: RootIconProps) => (
        <svg viewBox="0 0 180 180" className="h-6 w-6" {...props}>
            <mask height="180" id="mask0" style={{maskType: 'alpha'}} width="180" x="0" y="0">
                <circle cx="90" cy="90" fill="black" r="90"></circle>
            </mask>
            <g mask="url(#mask0)">
                <circle cx="90" cy="90" data-circle="true" fill="black" r="90"></circle>
                <path
                    d="M149.508 157.52L69.142 54H54V125.97H66.1136V69.3836L139.999 164.845C143.333 162.614 146.509 160.165 149.508 157.52Z"
                    fill="url(#paint0_linear)"></path>
                <rect fill="url(#paint1_linear)" height="72" width="12" x="115" y="54"></rect>
            </g>
            <defs>
                <linearGradient gradientUnits="userSpaceOnUse" id="paint0_linear" x1="109" x2="144.5" y1="116.5"
                                y2="160.5">
                    <stop stopColor="white"></stop>
                    <stop offset="1" stopColor="white" stopOpacity="0"></stop>
                </linearGradient>
                <linearGradient gradientUnits="userSpaceOnUse" id="paint1_linear" x1="121" x2="120.799" y1="54"
                                y2="106.875">
                    <stop stopColor="white"></stop>
                    <stop offset="1" stopColor="white" stopOpacity="0"></stop>
                </linearGradient>
            </defs>
        </svg>
    ),
    ShadcnUI: (props: RootIconProps) => (
        <svg viewBox="0 0 24 24" className="h-6 w-6" {...props}>
            <circle cx="12" cy="12" r="10" fill="black"/>
            <path d="M16.9 8.7L14.5 15.3L12 8.7L9.5 15.3L7.1 8.7" stroke="white" strokeWidth="1.5" strokeLinecap="round"
                  strokeLinejoin="round"/>
        </svg>
    ),
    Axios: (props: RootIconProps) => (
        <svg
            id="katman_1"
            xmlns="http://www.w3.org/2000/svg"
            xmlnsXlink="http://www.w3.org/1999/xlink"
            x="0px"
            y="0px"
            viewBox="0 0 1280 1024"
            style={{
                enableBackground: "new 0 0 1280 1024",
            }}
            xmlSpace="preserve"
            {...props}
        >
            <style type="text/css">
                {
                    "\n\t.st0{fill:#5A29E4;}\n\t.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#5A29E4;}\n"
                }
            </style>
            <path className="st0" d="M636.3,456.6L598.9,487h24.4v98.9l13-10.4V456.6z"/>
            <path className="st0" d="M647,566.6l38-31.2H660v-96.7l-12.9,9V566.6z"/>
            <path
                className="st0"
                d="M1117.5,474.3c4.3,2.2,7.4,4.1,9.3,5.7l13.4-25.6c-6.7-4.1-14.8-7.8-24.3-11.1c-9.3-3.3-19.4-4.9-30.2-4.9 c-10.3,0-19.9,1.7-28.7,5.2c-8.6,3.4-15.5,8.5-20.7,15.2c-5,6.7-7.5,15.1-7.5,25.1c0,11.2,3.5,19.8,10.6,25.8 c7.2,5.9,18.3,10.7,33.1,14.5c11.9,3.1,21.4,5.9,28.7,8.5c7.4,2.4,11.1,6.5,11.1,12.1c0,8.4-7.9,12.7-23.8,12.7 c-7.9,0-15.4-0.9-22.5-2.8c-7.1-1.9-13.3-4.2-18.6-7c-5.2-2.8-8.9-5.3-11.1-7.5l-14,27.1c9,5.7,19.2,10.2,30.8,13.4 c11.5,3.3,23.2,4.9,34.9,4.9c10.2,0,19.6-1.4,28.4-4.1c8.8-2.9,15.8-7.6,21.2-14c5.5-6.5,8.3-15.2,8.3-25.8c0-8.8-2.1-15.8-6.2-21.2 c-4-5.5-9.7-9.9-17.3-13.2c-7.4-3.3-16.2-6.2-26.4-8.8c-11.5-2.8-20.3-5.3-26.4-7.5c-5.9-2.2-8.8-6-8.8-11.4 c0-9.1,8.1-13.7,24.3-13.7c6,0,11.9,0.9,17.6,2.6C1108.5,470.2,1113.4,472.1,1117.5,474.3z"
            />
            <path
                className="st1"
                d="M845.6,584.9c-11.4,0-21.7-2-31-5.9c-9.3-4.1-17.3-9.6-24-16.5c-6.7-7.1-11.9-15-15.5-23.8 c-3.6-8.8-5.4-17.8-5.4-27.1c0-9.5,1.9-18.6,5.7-27.4c3.8-8.8,9.1-16.5,16-23.3c6.9-6.9,15-12.3,24.3-16.3c9.3-4,19.5-5.9,30.5-5.9 c11.4,0,21.7,2.2,31,6.5c9.3,4.1,17.2,9.7,23.8,16.8c6.7,6.9,11.9,14.7,15.5,23.5c3.6,8.8,5.4,17.7,5.4,26.9 c0,9.5-1.9,18.6-5.7,27.4c-3.8,8.6-9.1,16.4-16,23.3c-6.7,6.7-14.7,12.1-24,16C866.8,582.9,856.6,584.9,845.6,584.9z M801.2,511.8 c0,7.8,1.8,15.2,5.4,22.2c3.6,6.9,8.7,12.5,15.2,16.8c6.7,4.3,14.7,6.5,24,6.5c9.5,0,17.5-2.2,24-6.7c6.6-4.7,11.5-10.4,15-17.3 c3.4-7.1,5.2-14.3,5.2-21.7c0-7.8-1.8-15.1-5.4-22c-3.6-6.9-8.8-12.4-15.5-16.5c-6.5-4.3-14.4-6.5-23.5-6.5 c-9.5,0-17.6,2.2-24.3,6.7c-6.5,4.5-11.5,10.2-15,17.1C802.9,497.2,801.2,504.4,801.2,511.8z"
            />
            <path
                className="st1"
                d="M134,583.9l63.1-144.5h25.6l62.8,144.5h-33.1L237.9,550h-56.1l-14.5,33.9H134z M210,477.4l-21.2,45.5h41.6 L210,477.4z"
            />
            <path
                className="st0"
                d="M407.6,439.4l39.8,51.2l39.8-51.2H521l-57.1,73.1l55.3,71.3h-33.9l-38-49.1l-37.7,49.1h-34.4l55.6-71.3 l-57.4-73.1H407.6z"
            />
        </svg>
    ),
    MomentJs: (props: RootIconProps) => (
        <svg preserveAspectRatio="xMidYMid" viewBox="0 0 256 256"
             xmlns="http://www.w3.org/2000/svg"
             {...props}
        >
            <g fillRule="evenodd">
                <path
                    d="m128 256c70.692448 0 128-57.307552 128-128s-57.307552-128-128-128-128 57.307552-128 128 57.307552 128 128 128zm0-19.2c-60.0885808 0-108.8-48.711419-108.8-108.8 0-60.0885808 48.7114192-108.8 108.8-108.8 60.088581 0 108.8 48.7114192 108.8 108.8 0 60.088581-48.711419 108.8-108.8 108.8z"
                    fill="#376660"/>
                <path
                    d="m128 230.4c56.553958 0 102.4-45.846042 102.4-102.4 0-56.5539584-45.846042-102.4-102.4-102.4-56.5539584 0-102.4 45.8460416-102.4 102.4 0 56.553958 45.8460416 102.4 102.4 102.4zm0-198.4c-3.534622 0-6.4 2.8796721-6.4 6.443811v83.156189h-44.8190074c-3.5241248 0-6.3809926 2.840735-6.3809926 6.4 0 3.534622 2.9162522 6.4 6.3705446 6.4h57.6294554v-95.9944214c0-3.5377034-2.840735-6.4055786-6.4-6.4055786z"
                    fill="#529990"/>
            </g>
        </svg>
    ),
    NodeJs: (props: RootIconProps) => (
        <svg viewBox="0 0 24 24" className="h-6 w-6" {...props}>
            <path
                d="M11.998,24c-0.321,0-0.641-0.084-0.922-0.247l-2.936-1.737c-0.438-0.245-0.224-0.332-0.08-0.383 c0.585-0.203,0.703-0.25,1.328-0.604c0.065-0.037,0.151-0.023,0.218,0.017l2.256,1.339c0.082,0.045,0.197,0.045,0.272,0l8.795-5.076 c0.082-0.047,0.134-0.141,0.134-0.238V6.921c0-0.099-0.053-0.192-0.137-0.242l-8.791-5.072c-0.081-0.047-0.189-0.047-0.271,0 L3.075,6.68C2.99,6.729,2.936,6.825,2.936,6.921v10.15c0,0.097,0.054,0.189,0.139,0.235l2.409,1.392 c1.307,0.654,2.108-0.116,2.108-0.89V7.787c0-0.142,0.114-0.253,0.256-0.253h1.115c0.139,0,0.255,0.112,0.255,0.253v10.021 c0,1.745-0.95,2.745-2.604,2.745c-0.508,0-0.909,0-2.026-0.551L2.28,18.675c-0.57-0.329-0.922-0.945-0.922-1.604V6.921 c0-0.659,0.353-1.275,0.922-1.603l8.795-5.082c0.557-0.315,1.296-0.315,1.848,0l8.794,5.082c0.57,0.329,0.924,0.944,0.924,1.603 v10.15c0,0.659-0.354,1.273-0.924,1.604l-8.794,5.078C12.643,23.916,12.324,24,11.998,24z M19.099,13.993 c0-1.9-1.284-2.406-3.987-2.763c-2.731-0.361-3.009-0.548-3.009-1.187c0-0.528,0.235-1.233,2.258-1.233 c1.807,0,2.473,0.389,2.747,1.607c0.024,0.115,0.129,0.199,0.247,0.199h1.141c0.071,0,0.138-0.031,0.186-0.081 c0.048-0.054,0.074-0.123,0.067-0.196c-0.177-2.098-1.571-3.076-4.388-3.076c-2.508,0-4.004,1.058-4.004,2.833 c0,1.925,1.488,2.457,3.895,2.695c2.88,0.282,3.103,0.703,3.103,1.269c0,0.983-0.789,1.402-2.642,1.402 c-2.327,0-2.839-0.584-3.011-1.742c-0.02-0.124-0.126-0.215-0.253-0.215h-1.137c-0.141,0-0.254,0.112-0.254,0.253 c0,1.482,0.806,3.248,4.655,3.248C17.501,17.007,19.099,15.91,19.099,13.993z"
                fill="#539e43"/>
        </svg>
    ),
    TypeScript: (props: RootIconProps) => (
        <svg viewBox="0 0 24 24" className="h-6 w-6" {...props}>
            <path
                d="M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z"
                fill="#3178C6"/>
        </svg>
    ),
    Redux: (props: RootIconProps) => (
        <svg width="800px" height="800px" viewBox="0 -6 256 256" xmlns="http://www.w3.org/2000/svg"
             preserveAspectRatio="xMidYMid" {...props}>
            <path
                d="M177.381 169.733c9.447-.978 16.614-9.122 16.288-18.896-.325-9.773-8.47-17.592-18.243-17.592h-.651c-10.1.326-17.918 8.796-17.592 18.895.326 4.887 2.28 9.122 5.212 12.054-11.076 21.828-28.016 37.791-53.426 51.148-17.266 9.122-35.183 12.38-53.1 10.1-14.66-1.955-26.062-8.47-33.23-19.222-10.424-15.963-11.401-33.23-2.605-50.496 6.19-12.38 15.962-21.502 22.152-26.063-1.303-4.235-3.258-11.402-4.235-16.614-47.237 34.207-42.35 80.468-28.016 102.295 10.75 16.29 32.577 26.389 56.684 26.389 6.515 0 13.03-.652 19.546-2.28 41.699-8.145 73.299-32.905 91.216-69.718zm57.336-40.397c-24.759-28.995-61.245-44.958-102.944-44.958h-5.212c-2.932-5.864-9.122-9.774-15.963-9.774h-.652C99.848 74.93 92.03 83.4 92.355 93.5c.326 9.773 8.47 17.592 18.243 17.592h.651c7.167-.326 13.357-4.887 15.963-11.077h5.864c24.759 0 48.214 7.167 69.39 21.176 16.288 10.751 28.016 24.76 34.531 41.7 5.538 13.683 5.212 27.04-.652 38.443-9.121 17.266-24.432 26.714-44.63 26.714-13.031 0-25.41-3.91-31.926-6.842-3.583 3.258-10.099 8.47-14.66 11.729 14.009 6.515 28.343 10.099 42.025 10.099 31.274 0 54.404-17.267 63.2-34.533 9.447-18.896 8.795-51.474-15.637-79.165zM69.225 175.27c.326 9.774 8.47 17.592 18.243 17.592h.652c10.099-.325 17.917-8.796 17.591-18.895-.325-9.774-8.47-17.592-18.243-17.592h-.651c-.652 0-1.63 0-2.28.325-13.357-22.153-18.895-46.26-16.94-72.323 1.302-19.547 7.818-36.488 19.22-50.497 9.447-12.054 27.69-17.918 40.07-18.243 34.531-.652 49.19 42.351 50.168 59.618 4.235.977 11.402 3.258 16.289 4.887C189.434 27.366 156.857 0 125.584 0c-29.32 0-56.359 21.176-67.11 52.451-14.985 41.7-5.212 81.771 13.031 113.372-1.628 2.28-2.606 5.864-2.28 9.448z"
                fill="#764ABC"/>
        </svg>
    ),
    Table: (props: RootIconProps) => (
        <svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" {...props}>
            <g id="SVGRepo_bgCarrier" strokeWidth="0"></g>
            <g id="SVGRepo_tracerCarrier" strokeLinecap="round" strokeLinejoin="round"></g>
            <g id="SVGRepo_iconCarrier">
                <path
                    d="M12 10V20M3 15L21 15M3 10H21M6.2 20H17.8C18.9201 20 19.4802 20 19.908 19.782C20.2843 19.5903 20.5903 19.2843 20.782 18.908C21 18.4802 21 17.9201 21 16.8V7.2C21 6.0799 21 5.51984 20.782 5.09202C20.5903 4.71569 20.2843 4.40973 19.908 4.21799C19.4802 4 18.9201 4 17.8 4H6.2C5.0799 4 4.51984 4 4.09202 4.21799C3.71569 4.40973 3.40973 4.71569 3.21799 5.09202C3 5.51984 3 6.07989 3 7.2V16.8C3 17.9201 3 18.4802 3.21799 18.908C3.40973 19.2843 3.71569 19.5903 4.09202 19.782C4.51984 20 5.07989 20 6.2 20Z"
                    stroke="#000000" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"></path>
            </g>
        </svg>
    ),
    WechatLine: props => (
        <svg
            viewBox="0 0 24 24"
            id="Layer_1"
            data-name="Layer 1"
            xmlns="http://www.w3.org/2000/svg"
            fill="#000000"
            {...props}
        >
            <g id="SVGRepo_bgCarrier" strokeWidth={0}/>
            <g
                id="SVGRepo_tracerCarrier"
                strokeLinecap="round"
                strokeLinejoin="round"
            />
            <g id="SVGRepo_iconCarrier">
                <defs>
                    <style>
                        {
                            ".cls-1{fill:none;stroke:#020202;stroke-miterlimit:10;stroke-width:1.91px;}.cls-2{fill:#020202;}"
                        }
                    </style>
                </defs>
                <path
                    className="cls-1"
                    d="M9.23,15.79H9.14a8.74,8.74,0,0,1-3-.54l-.81.54v-.9A6.58,6.58,0,0,1,1.5,9.11c0-3.69,3.42-6.68,7.64-6.68s7.63,3,7.63,6.68v.07"
                />
                <path
                    className="cls-1"
                    d="M22.5,14.84a5.5,5.5,0,0,1-2.86,4.69v1L18.76,20a7.63,7.63,0,0,1-2.94.58c-3.7,0-6.68-2.57-6.68-5.73s3-5.73,6.68-5.73S22.5,11.68,22.5,14.84Z"
                />
                <circle className="cls-2" cx={6.27} cy={7.2} r={0.95}/>
                <circle className="cls-2" cx={12} cy={7.2} r={0.95}/>
                <circle className="cls-2" cx={12.95} cy={13.89} r={0.95}/>
                <circle className="cls-2" cx={18.68} cy={13.89} r={0.95}/>
            </g>
        </svg>
    ),
    SendHorizontal: (props: RootIconProps) => (<SendHorizontal {...props} />),
    CircleX: (props: RootIconProps) => (<CircleX {...props}/>),
    Pen: (props: RootIconProps) => (<Pen {...props} />),
    ImageUpload: (props: RootIconProps) => (<ImageUp {...props} />),
    WareHouse: (props: RootIconProps) => <Warehouse {...props} />,
    dashboard: (props: RootIconProps) => (
        <LayoutDashboard {...props}/>
    ),
    Cart: (props: RootIconProps) => <ShoppingCart {...props} />,
    Package: (props: RootIconProps) => <Package2 {...props} />,
    user: (props: RootIconProps) => <UserCircle {...props} />,
    analytics: (props: RootIconProps) => <BarChart3 {...props} />,
    search: (props: RootIconProps) => <Search {...props} />,
    setting: (props: RootIconProps) => <Settings {...props} />,
    logout: (props: RootIconProps) => <LogOut {...props} />,
    home: (props: RootIconProps) => <Home {...props} />,
    help: (props: RootIconProps) => <HelpCircle {...props} />,
    Email: (props: RootIconProps) => <Mail {...props} />,
    Crown: (props: RootIconProps) => <Crown {...props} />,
    ScanFace: (props: RootIconProps) => <ScanFace {...props} />,
    LoginUser: (props: RootIconProps) => <UserRoundCheck {...props} />,
    Plus: props =>  <Plus {...props} />,
    CircleAlert: props => <CircleAlert {...props}/>,

}

export type IconName = keyof typeof Icons;

const Icon: React.FC<{ icon: IconName | undefined, className?: string }> & {
    UserRole: React.FC<{ className?: string, userRole: UserRoleEnum }>;
} = ({icon, className}) =>
{
    if (!icon) {
        throw new Error(`Icon ${icon} not found`);
    }
    const IconComponent = Icons[icon];
    if (!IconComponent) {
        throw new Error(`Icon ${icon} not found`);
    } else {
        return <IconComponent className={className}/>;
    }
};

const UserRoleIcon: React.FC<{ className?: string, userRole: UserRoleEnum }> = ({className, userRole}) =>
{
    switch (userRole) {
        case UserRoleEnum.ADMIN:
            return <Icon icon="Crown" className={className}/>
        case UserRoleEnum.USER:
            return <Icon icon="LoginUser" className={className}/>
        case UserRoleEnum.NO_LOGIN:
            return <Icon icon="ScanFace" className={className}/>
        default:
            return <Icon icon="user" className={className}/>
    }
};

Icon.UserRole = UserRoleIcon;

Icon.displayName = "Icon";
UserRoleIcon.displayName = "UserRoleIcon";

export {Icon};
